; Music of Shao Lin's Road Kung-Fu (1987) (The Edge)
; Ripped by Megachur the 08/02/2009

	write "SHAOLIRK.BIN"

music_date_rip	equ &0829
music_adr	equ &8000
first_theme	equ 0
last_theme	equ 0	; 0 -> 0

	read "music_header_v1_0.asm"

;
.play_music_interrupt
.l8000
;
	di
	push af
	push de
	push hl
	push bc
	push ix
	call l816b
	pop ix
	pop bc
	pop hl
	pop de
	pop af
	ei
	ret
;
.init_music
;
	ld hl,l85b4
	ld (l82b2),hl
	ld a,#ff
	ld (l808d),a
	di
	ld hl,l813d
	ld (l812c),hl
	ld (l8130),hl
	ld (l8134),hl
	ld (l8138),hl
	ld a,#06
	dec a
	ld (l811d),a
	xor a
	ld (l813c),a
	ld a,#f3
	ld (l8000),a
	ei
	ret
;
.stop_music
;
	ld a,#c9
	ld (l8000),a
	ld de,#073f
	jp l83c7
	ld a,#01
	ld (l808d),a
	dec a
	ld e,a
	add a
	add a
	add e
	ld e,a
	ld d,#00
	ld hl,l87fc
	add hl,de
	dec hl
	ld e,#1a
	ld (l812c),hl
	add hl,de
	ld (l8130),hl
	add hl,de
	ld (l8134),hl
	add hl,de
	ld (l8138),hl
	ld hl,l8864
	ld (l82b2),hl
	ld a,#06
	dec a
	ld (l811d),a
	xor a
	ld (l813c),a
	ei
	ret
	ld a,#01
	ld (l808a),a
	ld hl,#0000
	ld (l808b),hl
	ret
.l808d equ $ + 3
.l808b equ $ + 1
.l808a
	db #ff,#00,#00,#ff
.l808e
	dw #03bc,#0386,#0353,#0324
	dw #02f6,#02cc,#02a4,#027e
	dw #025a,#0238,#0218,#01fa
	dw #01de,#01c3,#01aa,#0192
	dw #017b,#0166,#0152,#013f
	dw #012d,#011c,#010c,#00fd
	dw #00ef,#00e1,#00d5,#00c9
	dw #00be,#00b3,#00a9,#009f
	dw #0096,#008e,#0086,#007f
	dw #0077,#0071,#006a,#0064
	dw #005f,#0059,#0054,#0050
	dw #004b,#0047,#0043,#003f
	dw #003c,#0038,#0035,#0032
	dw #002f
	db #00,#00,#19,#09,#02,#07,#00,#50
	db #1f,#60,#0d,#20,#05,#30,#11,#07
.l810f equ $ + 7
.l810c equ $ + 4
	db #1c,#07,#1f,#0a,#00,#00,#00,#00
.l8117 equ $ + 7
.l8116 equ $ + 6
.l8115 equ $ + 5
	db #00,#00,#00,#00,#00,#00,#3f,#00
.l811e equ $ + 6
.l811d equ $ + 5
	db #00,#00,#00,#00,#00,#00,#00,#00
.l8124 equ $ + 4
.l8121 equ $ + 1
	db #00,#01,#01,#01,#00,#00,#00,#00
	db #00,#00,#00,#00
.l8130 equ $ + 4
.l812c
	dw l813d,l8428,l813d,l848b
.l8138 equ $ + 4
.l8134
	dw l813d,l84ee,l813d,l8551
.l813d equ $ + 1
.l813c
	dw #ff00:db #ff
.l8143 equ $ + 4
.l8141 equ $ + 2
.l8140 equ $ + 1
.l813f
	db #00,#00,#00,#00,#0c,#0c,#0c,#0c
	db #0c,#06,#00,#00,#03,#07,#09,#0a
	db #0a,#0b,#00,#00,#0c,#0b,#0a,#09
	db #08,#04,#00,#00,#0a,#0e,#0f,#0e
	db #0c,#0a,#00,#00,#0f,#0d,#0b,#09
	db #06,#02,#00,#00
;
.play_music
.l816b
;
	ld a,(l811d)
	inc a
	ld (l811d),a
	cp #06
	call z,l8209
	xor a
	call l83f7
	ld a,#01
	call l83f7
	ld a,#02
	call l83f7
	ld a,(l808a)
	inc a
	ret z
	ld hl,l8116
	dec a
	dec a
	jr z,l8198
	dec a
	jr z,l81b9
	dec a
	jr z,l81da
	ret
.l8198
	set 1,(hl)
	res 4,(hl)
	ld a,(l808b)
	inc a
	ld (l808b),a
	cp #10
	jr z,l8203
	ld b,a
	dec hl
	ld (hl),#01
	ld a,#10
	sub b
	inc hl
	inc hl
	inc hl
	ld (hl),a
	ld e,#06
	ld b,#04
	jp l83e8
.l81b9
	set 1,(hl)
	res 4,(hl)
	ld a,(l808b)
	inc a
	ld (l808b),a
	cp #10
	jr z,l8203
	ld b,a
	dec hl
	ld (hl),#1e
	ld a,#10
	sub b
	inc hl
	inc hl
	inc hl
	ld (hl),a
	ld e,#06
	ld b,#04
	jp l83e8
.l81da
	res 1,(hl)
	set 4,(hl)
	ld a,(l808b)
	inc a
	ld (l808b),a
	inc hl
	inc hl
	ld (hl),#0d
	ld hl,l810f
	inc hl
	inc hl
	ld b,a
	add a
	add a
	add a
	add a
	ld (hl),a
	inc hl
	ld (hl),#00
	ld a,b
	cp #30
	jr z,l8203
	ld e,#00
	ld b,#0a
	jp l83e8
.l8203
	ld a,#ff
	ld (l808a),a
	ret
.l8209
	ld hl,l8116
	ld b,#3f
	ld (hl),b
	inc hl
	ld b,#00
	call l838f
	ld hl,l811d
	ld (hl),b
	inc hl
	call l838f
	ld hl,l8124
	ld (hl),b
	inc hl
	call l838f
	inc hl
	call l838f
	ld hl,l8138
	call l8298
	call l8358
	ld hl,l812c
	call l8298
	ld (l813f),a
	ld c,#01
	call l82db
	ld hl,l8130
	call l8298
	ld (l8140),a
	ld c,#02
	call l82db
	ld hl,l8134
	call l8298
	ld (l8141),a
	ld c,#03
	call l82db
	ld hl,l810f
	ld e,(hl)
	inc hl
	ld d,(hl)
	inc hl
	call l8289
	inc hl
	inc hl
	call l8289
	dec hl
	dec hl
	ld e,(hl)
	inc hl
	ld d,(hl)
	inc hl
	call l8289
	ld e,#00
	ld b,#0b
	call l83e8
	ld a,(l813c)
	inc a
.l827f
	ld (l813c),a
	cp #08
	ret nz
	xor a
	jr l827f
	ret
.l8289
	ld a,(hl)
	cp e
	ret nz
	inc hl
	ld a,(hl)
	dec hl
	cp d
	ret nz
	inc de
	ld (hl),e
	inc hl
	ld (hl),d
	dec hl
	dec de
	ret
.l8298
	ld e,(hl)
	inc hl
	ld d,(hl)
	ld a,(l813c)
	cp #00
	jr nz,l82a3
	inc de
.l82a3
	ld a,(de)
	cp #ff
	jp z,l82cb
	ld (hl),d
	dec hl
	ld (hl),e
	dec a
	add a
	ld e,a
	ld d,#00
.l82b2 equ $ + 1
	ld hl,l85b4
	add hl,de
	add hl,de
	add hl,de
	add hl,de
	ld a,(l813c)
	ld e,a
	add hl,de
	ld a,(hl)
	ld b,a
	add a
	ld e,a
	ld hl,l808e
	add hl,de
	ld d,(hl)
	inc hl
	ld e,(hl)
	ex de,hl
	ld a,b
	ret
.l82cb
	push hl
	ld hl,l85b4
	ld (l82b2),hl
	pop hl
	inc hl
	ld e,(hl)
	inc hl
	ld d,(hl)
	dec hl
	dec hl
	jr l82a3
.l82db
	ld a,b
	cp #36
	jp nc,l831e
	ld a,l
	or h
	ret z
	ld a,c
	push hl
	add a
	dec a
	ld hl,l810f
	ld d,#00
	ld e,a
	add hl,de
	pop de
	ld (hl),e
	dec hl
	ld (hl),d
	ld hl,l8121
	ld e,c
	ld d,#00
	dec e
	add hl,de
	ld a,(hl)
	dec hl
	dec hl
	dec hl
	ld (hl),a
	ld hl,l810c
	add hl,de
	ld a,(hl)
	ld hl,l8117
	add hl,de
	ld (hl),a
	ld hl,l8116
	dec c
	jp nz,l8313
	res 0,(hl)
.l8313
	dec c
	jp nz,l8319
	res 1,(hl)
.l8319
	dec c
	ret nz
	res 2,(hl)
	ret
.l831e
	ld a,h
	ld (l8115),a
	ld a,l
	and #f0
	cp #00
	jp z,l8349
	rrca
	rrca
	rrca
	rrca
.l832e
	ld hl,l811e
	ld d,#00
	ld e,c
	add hl,de
	dec hl
	ld (hl),a
	ld hl,l8116
	dec c
	jr nz,l8340
	res 3,(hl)
	ret
.l8340
	dec c
	jr nz,l8346
	res 4,(hl)
	ret
.l8346
	res 5,(hl)
	ret
.l8349
	ld a,l
	and #0f
	ld hl,l8117
	ld d,#00
	ld e,c
	add hl,de
	dec hl
	ld (hl),a
	xor a
	jr l832e
.l8358
	ld a,b
	and #03
	ld c,a
	ld a,b
	bit 2,b
	jr nz,l8362
	ret
.l8362
	bit 3,b
	jp nz,l8395
	and #f0
	rrc a
	rrc a
	rrc a
	rrc a
	ld b,a
	xor a
	cp c
	jr z,l8384
	ld hl,l810c
	ld d,#00
	ld e,c
	add hl,de
	dec hl
	ld (hl),b
	ld b,#00
	jp l83a4
.l8384
	ld hl,l810c
	call l838f
	ld b,#00
	jp l83ae
.l838f
	ld (hl),b
	inc hl
	ld (hl),b
	inc hl
	ld (hl),b
	ret
.l8395
	and #e0
	bit 4,b
	ret nz
	rlca
	rlc a
	rlc a
	ld b,a
	xor a
	cp c
	jr z,l83ae
.l83a4
	ld d,#00
	ld e,c
	ld hl,l8121
	add hl,de
	dec hl
	ld (hl),b
	ret
.l83ae
	ld hl,l8121
	jp l838f
	push hl
	pop de
	sra h
	rr l
	push hl
	sra h
	rr l
	sra h
	rr l
	add hl,de
	add hl,de
	pop de
	add hl,de
.l83c7
	push bc
	ld b,#f4
	out (c),d
	ld b,#f6
	in a,(c)
	or #c0
	out (c),a
	and #3f
	out (c),a
	ld b,#f4
	out (c),e
	ld b,#f6
	ld c,a
	or #80
	out (c),a
	out (c),c
	pop bc
	inc d
	ret
.l83e8
	ld hl,l810f
	ld d,#00
	add hl,de
	ld d,e
.l83ef
	ld e,(hl)
	inc hl
	call l83c7
	djnz l83ef
	ret
.l83f7
	ld hl,l8117
	ld c,a
	ld e,a
	ld d,#00
	add hl,de
	ex de,hl
	ld hl,#0007
	add hl,de
	ld a,(hl)
	cp #00
	ret z
	push de
	ld hl,l8143
	dec a
	rla
	rla
	rla
	ld d,#00
	ld e,a
	add hl,de
	ld a,(l811d)
	ld e,a
	add hl,de
	ld a,(hl)
	pop hl
	ld b,(hl)
	cp b
	ret z
	ld (hl),a
	ld a,c
	add #08
	ld e,a
	ld b,#01
	jp l83e8
.l8428
	db #03,#03,#03,#03,#03,#03,#03,#03
	db #04,#04,#04,#04,#05,#05,#03,#03
	db #03,#03,#03,#06,#07,#08,#09,#03
	db #03,#03,#03,#03,#03,#03,#03,#04
	db #04,#04,#04,#05,#05,#03,#03,#03
	db #03,#03,#06,#07,#08,#09,#0a,#0b
	db #0c,#0d,#0e,#03,#03,#03,#03,#03
	db #03,#04,#04,#04,#04,#05,#05,#03
	db #03,#03,#03,#03,#06,#07,#08,#09
	db #03,#03,#03,#03,#03,#03,#03,#03
	db #04,#04,#04,#04,#05,#05,#03,#03
	db #03,#03,#03,#06,#07,#08,#09,#0a
.l848b equ $ + 3
	db #0b,#0c,#ff,#02,#02,#02,#02,#02
	db #02,#02,#02,#02,#02,#02,#02,#02
	db #02,#02,#02,#02,#02,#02,#02,#02
	db #02,#02,#0f,#0f,#0f,#0f,#0f,#0f
	db #0f,#0f,#10,#11,#02,#02,#12,#02
	db #02,#02,#02,#02,#02,#13,#14,#15
	db #16,#17,#18,#19,#03,#03,#03,#03
	db #1a,#1a,#1a,#1a,#1b,#1b,#1b,#1b
	db #02,#1a,#1a,#1c,#1a,#1a,#1d,#02
	db #1b,#1b,#1b,#03,#1e,#1f,#20,#21
	db #22,#0f,#0f,#10,#11,#1b,#1b,#12
	db #02,#02,#02,#02,#02,#02,#13,#14
.l84ee equ $ + 6
	db #15,#23,#24,#24,#25,#ff,#02,#02
	db #02,#02,#26,#27,#28,#29,#2a,#17
	db #2b,#2c,#2d,#2e,#2f,#27,#28,#30
	db #29,#13,#14,#31,#32,#02,#02,#02
	db #02,#33,#34,#30,#35,#17,#17,#2b
	db #36,#37,#0a,#2f,#27,#38,#38,#39
	db #13,#14,#31,#32,#17,#3a,#3b,#0d
	db #0e,#02,#02,#26,#27,#28,#29,#2a
	db #17,#2b,#2c,#2d,#2e,#2f,#27,#28
	db #30,#29,#13,#14,#31,#32,#02,#02
	db #02,#02,#33,#34,#30,#35,#17,#17
	db #2b,#36,#37,#0a,#2f,#27,#38,#38
	db #39,#13,#14,#31,#32,#17,#3a,#3b
.l8551 equ $ + 1
	db #ff,#3c,#01,#01,#01,#01,#01,#3d
	db #01,#3e,#01,#3d,#01,#3f,#40,#3c
	db #01,#3d,#01,#01,#41,#01,#01,#01
	db #3c,#01,#01,#01,#42,#01,#3d,#01
	db #3e,#01,#40,#01,#3f,#40,#3c,#01
	db #3f,#01,#3d,#43,#01,#01,#01,#44
	db #01,#01,#45,#46,#01,#01,#47,#01
	db #3d,#01,#3e,#01,#48,#01,#3f,#40
	db #3c,#01,#3d,#01,#49,#41,#01,#01
	db #01,#3c,#01,#01,#01,#42,#01,#3d
	db #01,#3e,#01,#40,#01,#3f,#40,#3c
	db #01,#3f,#01,#3d,#43,#01,#01,#01
	db #44,#01,#01,#ff
.l85b4
	db #00,#00,#00,#00,#00,#00,#00,#00
	db #35,#35,#35,#35,#35,#35,#35,#35
	db #0e,#35,#0e,#0e,#09,#35,#0c,#35
	db #07,#35,#07,#07,#02,#35,#05,#35
	db #1a,#35,#1a,#1a,#15,#35,#18,#35
	db #13,#35,#13,#13,#0e,#35,#11,#35
	db #11,#35,#11,#11,#0c,#35,#11,#35
	db #0a,#0a,#35,#35,#16,#16,#35,#35
	db #09,#09,#35,#35,#15,#15,#35,#35
	db #07,#13,#1f,#2b,#07,#13,#1f,#2b
	db #05,#11,#1d,#29,#05,#11,#1d,#29
	db #04,#10,#1c,#28,#04,#10,#1c,#29
	db #02,#02,#02,#02,#02,#02,#02,#02
	db #02,#02,#02,#02,#02,#02,#35,#35
	db #02,#02,#05,#02,#35,#35,#35,#35
	db #2b,#32,#32,#2b,#32,#30,#2d,#2e
	db #2b,#32,#32,#2b,#30,#2e,#2d,#2b
	db #1a,#21,#26,#1a,#21,#26,#1a,#21
	db #35,#35,#1f,#1f,#21,#21,#24,#24
	db #26,#26,#24,#24,#21,#21,#1d,#1d
	db #1a,#1a,#18,#18,#1a,#1a,#18,#18
	db #1a,#1a,#18,#18,#12,#11,#0e,#0c
	db #1f,#1f,#1f,#1f,#1f,#1f,#1f,#1f
	db #21,#21,#21,#21,#21,#21,#21,#21
	db #10,#10,#10,#11,#13,#18,#13,#35
	db #35,#35,#35,#35,#35,#35,#38,#38
	db #38,#3b,#37,#38,#3b,#37,#38,#38
	db #35,#35,#35,#35,#35,#35,#37,#38
	db #21,#24,#21,#1f,#21,#1f,#1d,#1a
	db #1a,#1a,#1a,#1a,#1c,#35,#18,#35
	db #0e,#35,#0e,#0e,#09,#35,#05,#35
	db #02,#02,#05,#02,#38,#35,#38,#35
	db #02,#02,#05,#02,#38,#37,#38,#35
	db #02,#02,#05,#02,#3b,#3b,#38,#38
	db #38,#3b,#37,#3b,#3b,#38,#38,#3b
	db #36,#37,#36,#37,#36,#37,#38,#38
	db #04,#10,#10,#11,#13,#15,#13,#18
	db #35,#35,#26,#26,#26,#26,#26,#26
	db #26,#26,#26,#26,#26,#26,#26,#26
	db #26,#29,#26,#24,#26,#24,#21,#24
	db #26,#29,#26,#24,#26,#24,#21,#1d
	db #35,#35,#1f,#1f,#1f,#1f,#1f,#1f
	db #21,#1f,#1d,#1a,#21,#1f,#1d,#1a
	db #21,#1f,#1d,#1a,#1f,#21,#24,#29
	db #26,#26,#35,#26,#26,#35,#35,#35
	db #0e,#0e,#0e,#0e,#18,#35,#1d,#35
	db #0e,#35,#26,#26,#26,#26,#26,#26
	db #1a,#1d,#1a,#18,#1a,#18,#15,#18
	db #1f,#1f,#1d,#1d,#1f,#1f,#1d,#1d
	db #1f,#1f,#1d,#1d,#1c,#1c,#18,#18
	db #35,#35,#1a,#1a,#1a,#1a,#1a,#1a
	db #1a,#1a,#1a,#1a,#1a,#1a,#1a,#1a
	db #32,#30,#2d,#29,#26,#21,#1d,#1a
	db #2d,#2b,#29,#26,#15,#13,#11,#0e
	db #02,#0e,#1a,#26,#02,#0e,#1a,#26
	db #26,#29,#26,#24,#21,#1f,#1d,#1a
	db #1a,#1d,#1a,#18,#1a,#1d,#1a,#1d
	db #1d,#1d,#1d,#18,#1d,#18,#18,#11
	db #10,#10,#10,#11,#13,#15,#1c,#1d
	db #2c,#a7,#00,#00,#00,#00,#00,#00
	db #8f,#00,#00,#00,#00,#00,#00,#00
	db #a7,#00,#00,#00,#00,#00,#00,#00
	db #af,#00,#00,#00,#00,#00,#00,#00
	db #6f,#00,#00,#00,#00,#00,#00,#00
	db #c7,#00,#00,#00,#00,#00,#00,#00
	db #00,#00,#a7,#00,#00,#00,#00,#00
	db #c7,#b6,#00,#00,#00,#00,#00,#00
	db #b4,#00,#00,#00,#00,#00,#00,#00
	db #2e,#00,#00,#a7,#95,#87,#75,#67
	db #55,#47,#35,#27,#15,#17,#00,#a7
	db #2d,#00,#00,#00,#00,#00,#00,#00
	db #56,#00,#00,#00,#00,#00,#00,#00
	db #8e,#00,#00,#00,#00,#00,#00,#00
.l87fc
	db #03,#04,#05,#06,#ff,#07,#08,#09
	db #0a,#ff,#02,#0b,#0c,#ff,#00,#0d
	db #0e,#ff,#00,#00,#02,#02,#02,#02
	db #02,#ff,#0f,#10,#11,#12,#ff,#13
	db #14,#15,#16,#ff,#17,#18,#19,#ff
	db #00,#02,#1a,#ff,#00,#00,#1b,#1c
	db #1d,#1e,#1f,#ff,#02,#20,#02,#21
	db #ff,#02,#02,#02,#22,#ff,#23,#24
	db #25,#ff,#00,#26,#27,#ff,#00,#00
	db #02,#02,#02,#02,#02,#ff,#28,#29
	db #28,#29,#ff,#2a,#29,#2a,#2b,#ff
	db #2c,#01,#01,#ff,#00,#2d,#2e,#ff
	db #00,#00,#2f,#01,#01,#01,#01,#ff
.l8864
	db #00,#00,#00,#00,#00,#00,#00,#00
	db #35,#35,#35,#35,#35,#35,#35,#35
	db #35,#35,#35,#35,#26,#35,#24,#35
	db #1d,#35,#1d,#35,#21,#21,#21,#21
	db #1d,#21,#22,#26,#22,#35,#1d,#35
	db #1d,#35,#18,#35,#1d,#1d,#1d,#1d
	db #24,#24,#24,#24,#22,#35,#22,#35
	db #1f,#35,#1f,#35,#22,#22,#22,#22
	db #1d,#1d,#1d,#1d,#1d,#1d,#1d,#1d
	db #11,#11,#11,#11,#11,#35,#35,#35
	db #35,#35,#35,#35,#05,#05,#05,#03
	db #03,#03,#02,#02,#02,#00,#35,#35
	db #26,#28,#2a,#26,#2b,#2a,#28,#25
	db #22,#1f,#22,#25,#26,#0b,#0b,#35
	db #26,#29,#26,#24,#21,#35,#21,#35
	db #21,#35,#21,#35,#24,#24,#24,#24
	db #21,#24,#26,#29,#26,#24,#21,#1f
	db #21,#35,#1f,#35,#1d,#1d,#1d,#1d
	db #29,#29,#29,#29,#27,#35,#27,#35
	db #24,#35,#24,#35,#27,#27,#27,#27
	db #22,#24,#22,#20,#22,#24,#22,#20
	db #1d,#1d,#1d,#1d,#1d,#35,#35,#35
	db #33,#32,#30,#33,#32,#30,#2e,#2c
	db #2b,#29,#2b,#27,#26,#27,#29,#2b
	db #33,#32,#30,#2f,#32,#24,#35,#35
	db #35,#35,#35,#35,#35,#0b,#0b,#35
	db #18,#1a,#1b,#1f,#24,#24,#24,#24
	db #22,#22,#22,#22,#1f,#1f,#1f,#1f
	db #1f,#1f,#1d,#1b,#1d,#22,#1d,#1b
	db #18,#18,#16,#16,#18,#18,#18,#18
	db #18,#35,#35,#35,#35,#35,#35,#35
	db #05,#35,#05,#35,#24,#24,#24,#24
	db #35,#35,#35,#35,#11,#11,#11,#11
	db #11,#35,#00,#35,#05,#35,#35,#35
	db #18,#1f,#24,#16,#1d,#22,#14,#1b
	db #20,#13,#1a,#1f,#11,#18,#1d,#0f
	db #16,#1b,#0e,#15,#1a,#0c,#35,#35
	db #23,#25,#26,#23,#28,#26,#25,#22
	db #1e,#1c,#1a,#19,#17,#0b,#0b,#35
	db #2c,#00,#00
;
.game_name
	db "Shao Lin's Road Kung-Fu",0
.game_year
	db "1987",0
.game_publisher
	db "The Edge",0
.music_author
	db "",0
.music_comment
	db "",0

	read "music_end_v1_0.asm"
